package com.hxzy.service;

import com.hxzy.controller.admin.merchandiser.req.MerchandiserChangePwdReq;
import com.hxzy.controller.admin.merchandiser.req.MerchandiserEditReq;
import com.hxzy.controller.admin.merchandiser.req.MerchandiserSearchReq;
import com.hxzy.controller.admin.merchandiser.req.ProcessReq;
import com.hxzy.controller.admin.merchandiser.resp.MerchandiserResp;
import com.hxzy.controller.admin.upload.req.ImagePrivateReq;
import com.hxzy.controller.anonymous.merchandiser.req.AnonyMerchandiserInfoReq;
import com.hxzy.controller.anonymous.merchandiser.req.AnonyMerchandiserSearchReq;
import com.hxzy.controller.anonymous.merchandiser.req.MerchandiserAddReq;
import com.hxzy.controller.anonymous.merchandiser.resp.AnonyMerchandiserResp;
import com.hxzy.entity.Merchandiser;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author admin
* @description 针对表【merchandiser(商家信息)】的数据库操作Service
* @createDate 2024-02-21 11:30:41
*/
public interface MerchandiserService extends IService<Merchandiser>, AdminLoginService  {

    /**
     * 查询账号是否存在
     * @param mobile
     * @return
     */
    long existsAccount(String mobile);

    /**
     * 商户注册
     * @param req
     * @return
     */
    boolean register(MerchandiserAddReq req);

    /**
     * 商家查询
     * @param req
     * @return
     */
    List<MerchandiserResp> search(MerchandiserSearchReq req);

    /**
     * 根据请求参数，查询数据库图片的路径
     * @param req
     * @return
     */
    String searchImageKey(ImagePrivateReq req);

    /**
     * 管理员审核商家信息
     * @param req
     * @return
     */
    boolean process(ProcessReq req);

    /**
     * 更新密码
     * @param req
     * @return
     */
    boolean changePassword(MerchandiserChangePwdReq req);

    /**
     * 获取当前商家信息
     * @return
     */
    MerchandiserResp findById();

    /**
     * 更新商家信息
     * @param req
     * @return
     */
    boolean updateData(MerchandiserEditReq req);

    /**
     * 获取距离我8公里之内的商家
     * @param req
     * @return
     */
    List<AnonyMerchandiserResp> anonySearch(AnonyMerchandiserSearchReq req);

    /**
     * 查询商家信息
     * @param req
     * @return
     */
    AnonyMerchandiserResp findByInfo(AnonyMerchandiserInfoReq req);
}
